package www.xudan.android_ffmpeg.videoplayer.player;

import android.view.Surface;

/**
 * 播放内核接口，方便以后切换播放内核
 */
public interface IVideoPlayer {


    void initPlayer();

    /**
     * 设置渲染层
     */
    void setRender(Surface surface);

    /**
     * 释放渲染
     */
    void releaseSurface();

    /**
     * 释放内核
     */
    void release();

    /**
     * 网络速度
     */
    long getNetSpeed();

    /**
     * 播放速度
     */
    void setSpeedPlaying(float speed);

//    /**
//     * Surface是否支持外部lockCanvas，来自定义暂停时的绘制画面
//     * exoplayer目前不支持，因为外部lock后，切换surface会导致异常
//     */
//    boolean isSurfaceSupportLockCanvas();


    /**
     * 开始播放
     */
    void start();

    /**
     * 停止播放
     */
    void stop();

    /**
     * 暂停播放
     */
    void pause();

    /**
     * 获取视频宽度
     */
    int getVideoWidth();

    /**
     * 获取视频高度
     */
    int getVideoHeight();

    /**
     * 获取是否正在播放
     */
    boolean isPlaying();

    /**
     * 跳转到
     */
    void seekTo(long time);

    /**
     * 获取播放位置
     */
    long getCurrentPosition();

    /**
     * 获取长度
     */
    long getDuration();

    /**
     * 界面压缩相关
     */
    int getVideoSarNum();

    /**
     * 界面压缩相关
     */
    int getVideoSarDen();

}
